package sseGameApps.model.mdkbr;

import java.io.Serializable;
import java.util.Date;

import com.google.appengine.api.datastore.Key;

import org.slim3.datastore.Attribute;
import org.slim3.datastore.Model;
import org.slim3.datastore.ModificationDate;

@Model(schemaVersion = 1)
public class MdDecoration implements Serializable {

    private static final long serialVersionUID = 1L;

    @Attribute(primaryKey = true)
    private Key key;

    @Attribute(version = true)
    private Long version;

    private String userId;

    @Attribute(listener = ModificationDate.class)
    private Date updatedAt;

    private boolean eventComplete1;

    private boolean eventComplete2;

    private boolean eventComplete3;

    private boolean eventComplete4;

    private boolean eventComplete5;

    private Date eventCompDate1;

    private Date eventCompDate2;

    private Date eventCompDate3;

    private Date eventCompDate4;

    private Date eventCompDate5;

    /**
     * Returns the key.
     *
     * @return the key
     */
    public Key getKey() {
        return key;
    }

    /**
     * Sets the key.
     *
     * @param key
     *            the key
     */
    public void setKey(Key key) {
        this.key = key;
    }

    /**
     * Returns the version.
     *
     * @return the version
     */
    public Long getVersion() {
        return version;
    }

    /**
     * Sets the version.
     *
     * @param version
     *            the version
     */
    public void setVersion(Long version) {
        this.version = version;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public boolean isEventComplete1() {
        return eventComplete1;
    }

    public void setEventComplete1(boolean eventComplete1) {
        this.eventComplete1 = eventComplete1;
    }

    public boolean isEventComplete2() {
        return eventComplete2;
    }

    public void setEventComplete2(boolean eventComplete2) {
        this.eventComplete2 = eventComplete2;
    }

    public boolean isEventComplete3() {
        return eventComplete3;
    }

    public void setEventComplete3(boolean eventComplete3) {
        this.eventComplete3 = eventComplete3;
    }

    public boolean isEventComplete4() {
        return eventComplete4;
    }

    public void setEventComplete4(boolean eventComplete4) {
        this.eventComplete4 = eventComplete4;
    }

    public boolean isEventComplete5() {
        return eventComplete5;
    }

    public void setEventComplete5(boolean eventComplete5) {
        this.eventComplete5 = eventComplete5;
    }

    public Date getEventCompDate1() {
        return eventCompDate1;
    }

    public void setEventCompDate1(Date eventCompDate1) {
        this.eventCompDate1 = eventCompDate1;
    }

    public Date getEventCompDate2() {
        return eventCompDate2;
    }

    public void setEventCompDate2(Date eventCompDate2) {
        this.eventCompDate2 = eventCompDate2;
    }

    public Date getEventCompDate3() {
        return eventCompDate3;
    }

    public void setEventCompDate3(Date eventCompDate3) {
        this.eventCompDate3 = eventCompDate3;
    }

    public Date getEventCompDate4() {
        return eventCompDate4;
    }

    public void setEventCompDate4(Date eventCompDate4) {
        this.eventCompDate4 = eventCompDate4;
    }

    public Date getEventCompDate5() {
        return eventCompDate5;
    }

    public void setEventCompDate5(Date eventCompDate5) {
        this.eventCompDate5 = eventCompDate5;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((key == null) ? 0 : key.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        MdDecoration other = (MdDecoration) obj;
        if (key == null) {
            if (other.key != null) {
                return false;
            }
        } else if (!key.equals(other.key)) {
            return false;
        }
        return true;
    }
}
